﻿
using System;
using System.Linq;
namespace IsAvailBr
{
    public class IsAvailCookie
    {
        public ulong QueryId { get; set; }
        public byte[] CookieId { get; set; }

        public static IsAvailCookie FromResposta(string resposta, ulong queryId)
        {
            if (!resposta.StartsWith("CK"))
            {
                throw new InvalidOperationException("Já existe um cookie para a conexão atual.");
            }
            // CK cookie qid
            string[] argumentosResposta = resposta.Split(' ');
            return new IsAvailCookie
            {
                CookieId = Enumerable.Range(0, argumentosResposta[1].Length)
                    .Where(x => x % 2 == 0)
                    .Select(x => Convert.ToByte(argumentosResposta[1].Substring(x, 2), 16))
                    .ToArray(),
                QueryId = queryId
            };
        }
    }
}
